#include <stdio.h>

int main()
{
    // ~按位取反    &按位与    |按位或     ^异或 相同为假 不同为真

    // char a = 1; // 0000 0001    ~a   1111 1110
    char a = 5; // 0000 0101    ~a   1111 1010
    printf("%hhd\n", a);
    printf("%hhd\n", ~a);

    char b = 11;  // 0000 1011
    char c = 111; // 0110 1111

    printf("%hhd\n", b & c); // 0000 1011
    printf("%hhd\n", b | c); // 0110 1111
    printf("%hhd\n", b ^ c); // 0110 0100
    printf("======\n");

    // 位移运算符  <<    >>

    unsigned char x = 3;
    printf("%hhu\n", x << 3);
    printf("%hhu\n", x >> 3);

    char y = 3;
    printf("%hhd\n", y << 3);
    printf("%hhu\n", y >> 3);

    char z = -105;
    printf("%hhd\n", z >> 3);

    int a1 = 3 + 5;
    printf("%d\n", a1);

    // a1+=5  a1=a1+5

    // 条件 ? 表达式1 : 表达式2;
    // 条件为真返回表达式1的结果  条件为假返回表达式2的结果
    printf("%s\n", 1 > 2 ? "1大于2" : "1小于等2");
    // a1 = 1 > 2 ? 1 : 0;

    return 0;
}
